/*
    给你一个整数 n ，请你找出并返回第 n 个 丑数 。

    丑数 就是只包含质因数 2、3 和/或 5 的正整数。

     

    示例 1：

    输入：n = 10
    输出：12
    解释：[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。
    示例 2：

    输入：n = 1
    输出：1
    解释：1 通常被视为丑数。
     

    来源：力扣（LeetCode）
    链接：https://leetcode-cn.com/problems/ugly-number-ii
    著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
*/

/**
 * @param {number} n
 * @return {number}
 */
 var nthUglyNumber = function(n) {
    if(n <= 0){
        return 0
    }
    const arr = [1]
    let p2 = 0
    let p3 = 0
    let p5 = 0
    for(let i = 0; i < n; i++){
        let temp = Math.min(arr[p2] * 2, arr[p3] * 3, arr[p5] * 5)
        arr.push(temp)
        if(arr[p2] * 2 === temp) p2++
        if(arr[p3] * 3 === temp) p3++
        if(arr[p5] * 5 === temp) p5++
    }
    return arr[n - 1]
};